As the size and complexity of modern processors and software increases, the demands upon transactional memory have steadily increased. Transactional memory (TM) systems track speculative reads and buffer speculative writes that occur during the transaction to provide the illusion of atomicity. The transactional read-set refers to the set of memory addresses that are read but not written during the execution of a transaction. The transactional write-set refers to the set of memory addresses that are written during the execution of a transaction. The memory addresses in the read-set and write-set are typically of the same granularity as the underlying coherency units in the memory system (usually cache lines).
When applied to multicore processors, there is an increasing demand upon the transactional memory system to successfully manage the actions that occur amongst the distribution of caches present in the core. The increase in demand has led to an increased size in structures to support transactional memory, however these steadily become more inefficient as structure size increases. Another problem facing a programmer is that while these methods exist for the management of transactional memory and the processes by which to track their functions, these methods are unable to efficiently manage the volume of data present in current devices.